home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / jockey / handlers / nvidia.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-29  |  5KB  |  135 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.5)
  3.  
  4. import logging
  5. from jockey.handlers import KernelModuleHandler
  6. from jockey.xorg_driver import XorgDriverHandler
  7. from jockey.oslib import OSLib
  8. import XKit
  9. from NvidiaDetector.nvidiadetector import NvidiaDetection
  10.  
  11. def _(x):
  12.     return x
  13.  
  14.  
  15. class NvidiaDriver(XorgDriverHandler):
  16.     
  17.     def __init__(self, backend):
  18.         self._free = False
  19.         XorgDriverHandler.__init__(self, backend, 'nvidia', None, 'nvidia', 'nv', {
  20.             'NoLogo': 'True' }, add_modules = [
  21.             'glx'], disable_modules = [], remove_modules = [
  22.             'dri',
  23.             'GLcore'], name = _('NVIDIA accelerated graphics driver'), description = _('3D-accelerated proprietary graphics driver for NVIDIA cards.'), rationale = _('This driver is required to fully utilise the 3D potential of NVIDIA graphics cards, as well as provide 2D acceleration of newer cards.\n\nIf you wish to enable desktop effects, this driver is required.\n\nIf this driver is not enabled, you will not be able to enable desktop effects and will not be able to run software that requires 3D acceleration, such as some games.'))
  24.         self._recommended = None
  25.  
  26.     
  27.     def id(self):
  28.         '''Return an unique identifier of the handler.'''
  29.         if self.package:
  30.             i = 'xorg:' + self.module + '-' + self.package.split('-')[-1]
  31.         else:
  32.             i = 'xorg:' + self.module
  33.         if self.driver_vendor:
  34.             i += ':' + self.driver_vendor.replace(' ', '_')
  35.         
  36.         return i
  37.  
  38.     
  39.     def name(self):
  40.         name = XorgDriverHandler.name(self)
  41.         if self.package:
  42.             name += ' (' + _('version %s') % self.package.split('-')[-1] + ')'
  43.         
  44.         return name
  45.  
  46.     
  47.     def available(self):
  48.         if self.package:
  49.             version = int(self.package.split('-')[-1])
  50.             if version < 173:
  51.                 logging.debug('NVIDIA legacy driver not currently supported')
  52.                 return False
  53.             
  54.         
  55.         return XorgDriverHandler.available(self)
  56.  
  57.     
  58.     def enable_config_hook(self):
  59.         if len(self.xorg_conf.globaldict['Screen']) == 0:
  60.             screen = self.xorg_conf.makeSection('Screen', identifier = 'Default Screen')
  61.         
  62.         self.xorg_conf.addOption('Screen', 'DefaultDepth', '24', position = 0, prefix = '')
  63.         if self.package and self.package.endswith('-96'):
  64.             self.xorg_conf.addOption('Screen', 'AddARGBGLXVisuals', 'True', optiontype = 'Option', position = 0)
  65.         
  66.         if self.package and self.package.endswith('-71'):
  67.             for opt in ('AllowGLXWithComposite', 'UseEdidFreqs'):
  68.                 self.xorg_conf.addOption('Device', opt, 'True', optiontype = 'Option', position = 0)
  69.             
  70.         
  71.         it = 0
  72.         for section in self.xorg_conf.globaldict['Files']:
  73.             
  74.             try:
  75.                 self.xorg_conf.removeOption('Files', 'RgbPath', position = it)
  76.             except XKit.xorgparser.OptionException:
  77.                 pass
  78.  
  79.             it += 1
  80.         
  81.         module_sections = self.xorg_conf.globaldict['Module']
  82.         have_modules = len(module_sections) > 0
  83.         if have_modules:
  84.             for section in module_sections:
  85.                 self.xorg_conf.removeOption('Module', 'Disable', value = 'dri2', position = section)
  86.             
  87.         
  88.  
  89.     
  90.     def disable(self):
  91.         XorgDriverHandler.disable(self)
  92.         if self.package:
  93.             flavour = self.package.split('-')[-1]
  94.             kernel_source = 'nvidia-%s-kernel-source' % flavour
  95.             self.backend.remove_package(kernel_source)
  96.         
  97.         return False
  98.  
  99.     
  100.     def recommended(self):
  101.         if self._recommended == None:
  102.             nd = NvidiaDetection()
  103.             self._recommended = self.package == nd.selectDriver()
  104.         
  105.         return self._recommended
  106.  
  107.     
  108.     def enabled(self):
  109.         
  110.         try:
  111.             devices = self.xorg_conf.globaldict['Device']
  112.             
  113.             try:
  114.                 driver = self.xorg_conf.getDriver('Device', 0)
  115.             except (XKit.xorgparser.OptionException, XKit.xorgparser.SectionException):
  116.                 driver = None
  117.  
  118.             if len(devices) == 0 or driver != 'nvidia':
  119.                 return False
  120.         except AttributeError:
  121.             return False
  122.  
  123.         return KernelModuleHandler.enabled(self)
  124.  
  125.     
  126.     def enables_composite(self):
  127.         '''Return whether this driver supports the composite extension.'''
  128.         if KernelModuleHandler.module_loaded('nvidia'):
  129.             logging.debug('enables_composite(): already using nvidia driver from nondefault package')
  130.             return False
  131.         
  132.         return True
  133.  
  134.  
  135.